public class CheckPermutation {
    public boolean checkPermutation(String s1, String s2) {
        if(s1.length() != s2.length()) {
            return false;
        }
        int n = s1.length();
        int[] hash = new int[26];
        // s1 和 s2 长度必定相同, 因此可以同时操作
        for(int i = 0; i < n; i++) {
            char s1Ch = s1.charAt(i);
            char s2Ch = s2.charAt(i);

            // 'a' 是小写字符的起始元素, 每个字符减去 'a' 的ASCII码
            // 这何尝不是一种哈希函数?
            hash[s1Ch - 'a']++;
            hash[s2Ch - 'a']--;
        }

        for(int x : hash) {
            // 再次遍历这个哈希数组, 如果出现不为0的数,说明s1和s2不相同
            if(x != 0) {
                return false;
            }
        }
        return true;
    }
}
